package CHART;

import java.awt.Font;
import java.util.List;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class PlayerChart {

	

     
      
    

    //构建容器面板，用于存放已经画好的图形报表
       

    //在构造方法中将图形报表初始化
    public  static void category(List<Object> list){
        //获取数据
    	 DefaultCategoryDataset dataset=new DefaultCategoryDataset();//创建数据集对象
        
         
         
         
         
      		
      		//统计重复元素数，如果元素后面没有和它一样的那么它就是不重复元素，否则不是
      		
       
        
    		 
    	 
         if(list!=null) //循环数据列表，生成表格行
 		{
        	 
 			for(int i=0;i<list.size();i++)
     		{
    				Object[] obj;
    				obj=(Object[])list.get(i);
    				
    			
    				
    				dataset.addValue(1 , (Comparable)obj[9],(Comparable) obj[10]);
     		}
 		}
        
    


        //创建图形实体对象
        JFreeChart chart=ChartFactory.createBarChart3D(//工厂模式
                "参赛人数图", //图形的标题
                "院名", //目录轴的显示标签(X轴)
                "数量",  //数据轴的显示标签(Y轴)
                dataset, //数据集
                PlotOrientation.VERTICAL, //垂直显示图形
                true,  //是否生成图样
                false, //是否生成提示工具
                false);//是否生成URL链接
        CategoryPlot plot=chart.getCategoryPlot();//获取图形区域对象
        //------------------------------------------获取X轴
        CategoryAxis domainAxis=plot.getDomainAxis();
        domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));//设置X轴的标题的字体
        domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));//设置X轴坐标上的字体
        //-----------------------------------------获取Y轴
        ValueAxis rangeAxis=plot.getRangeAxis();
        rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));//设置Y轴坐标上的标题字体
        //设置图样的文字样式
        chart.getLegend().setItemFont(new Font("黑体",Font.BOLD ,15));
        //设置图形的标题
        chart.getTitle().setFont(new Font("宋体",Font.BOLD ,20));

        ChartFrame cf = new ChartFrame("院得分柱状图", chart);  
	    cf.pack();  
	    cf.setVisible(true);  
    }

    //构建一个方法，用于获取存放了图形的面板(封装：隐藏具体实现)
  
}
